<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Stack</title>
  </head>
  <body>
    <script>
      // 实现一个栈
      // function Stack() {
      //   this.arr = [];
      //   // 栈的相关方法
      // }
      // // 入栈
      // Stack.prototype.push = function (ele) {
      //   this.arr.push(ele);
      // };
      // // 出栈
      // Stack.prototype.pop = function () {
      //   // 删除并返回数组最后一个元素
      //   return this.arr.pop();
      // };
      // // 查看栈顶元素
      // Stack.prototype.peek = function () {
      //   return this.arr[this.arr.length - 1];
      // };
      // //
      // Stack.prototype.isEmpty = function () {
      //   return this.arr.length === 0;
      // };
      // Stack.prototype.size = function () {
      //   return this.arr.length;
      // };
      // Stack.prototype.toString = function () {
      //   var str = "";
      //   for (var i = 0; i < this.arr.length; i++) {
      //     str += this.arr[i] + " ";
      //   }
      //   return str;
      // };
      class Stack {
        constructor() {
          this.arr = [];
        }
        push(ele) {
          this.arr.push(ele);
        }
        // 出栈
        pop() {
          // 删除并返回数组最后一个元素
          return this.arr.pop();
        }
        // 查看栈顶元素
        peek() {
          return this.arr[this.arr.length - 1];
        }
        //
        isEmpty() {
          return this.arr.length === 0;
        }
        size() {
          return this.arr.length;
        }
        toString() {
          var str = "";
          for (var i = 0; i < this.arr.length; i++) {
            str += this.arr[i] + " ";
          }
          return str;
        }
      }

      // 实现十进制转二进制方法
      function dec2bin(decNumber) {
        var stacks = new Stack();
        while (decNumber > 0) {
          stacks.push(decNumber % 2);
          decNumber = parseInt(decNumber / 2);
        }
        var str = "";
        while (!stacks.isEmpty()) {
          str += stacks.pop();
        }
        return str;
      }
      let binStr = dec2bin(2);
      console.log(binStr);
    </script>
  </body>
</html>
